package ldh.im.base.service;

import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import ldh.common.PageResult;
import ldh.im.base.dao.ImMessageSessionDao;
import ldh.im.base.pojo.ImMessageSession;
import ldh.im.base.pojo.where.ImMessageSessionWhere;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * @author: ldh
 * @date: 2024-03-21 10:36:18
*/
@Service("imMessageSessionService")
public class ImMessageSessionService {

	@Resource
	private ImMessageSessionDao imMessageSessionDao;
	
	@Transactional
	public ImMessageSession insert(ImMessageSession imMessageSession) {
		int n = imMessageSessionDao.insert(imMessageSession);
		if (n != 1) {
			throw new RuntimeException("ImMessageSession insert error!");
		}
		return imMessageSession;
	}
	
	@Transactional
	public ImMessageSession insertSelective(ImMessageSession imMessageSession) {
		int n = imMessageSessionDao.insert(imMessageSession);
		if (n != 1) {
			throw new RuntimeException("ImMessageSession insertSelective error!");
		}
		return imMessageSession;
	}

	@Transactional
	public ImMessageSession updateById(ImMessageSession imMessageSession) {
		int  n = imMessageSessionDao.updateById(imMessageSession);
		if (n != 1) {
			throw new RuntimeException("ImMessageSession update error!");
		}
        return imMessageSession;
     }

	@Transactional
	public ImMessageSession updateNotNullById(ImMessageSession imMessageSession) {
		int  n = imMessageSessionDao.updateNotNullById(imMessageSession);
		if (n != 1) {
			throw new RuntimeException("ImMessageSession update error!");
		}
        return imMessageSession;
     }


    @Transactional
    public void deleteById(Long id) {
		int n = imMessageSessionDao.deleteById(id);
		if (n != 1) {
			throw new RuntimeException("ImMessageSession delete error!");
		}
    }

	@Transactional(readOnly = true)
	public ImMessageSession getById(Long id) {
		ImMessageSession imMessageSession = imMessageSessionDao.getById(id);
		return imMessageSession;
    }
    
	
	@Transactional(readOnly = true)
	public PageResult<ImMessageSession> findByImMessageSessionWhere(ImMessageSessionWhere imMessageSessionWhere) {
		long total = imMessageSessionDao.findTotalByImMessageSessionWhere(imMessageSessionWhere);
		List<ImMessageSession> imageList = new ArrayList<ImMessageSession>();
		if (total > 0) {
			imageList  = imMessageSessionDao.findByImMessageSessionWhere(imMessageSessionWhere);
		}
		
		return new PageResult<ImMessageSession>(imMessageSessionWhere, total, imageList);
	}
	
	
}
